const express = require('express');
const router = express.Router();
const { body } = require('express-validator');
const multer = require('multer');
const presetFileController = require('../controllers/presetFileController');
const { authenticate, isAdmin } = require('../middlewares/authMiddleware');
const { validate } = require('../middlewares/validationMiddleware');

// 配置文件上传
const upload = multer({
  dest: 'uploads/temp/',
  limits: {
    fileSize: 10 * 1024 * 1024 // 10MB
  }
});

// 获取所有预设文件
router.get('/', authenticate, presetFileController.getAllPresetFiles);

// 获取预设文件统计数据
router.get('/stats', authenticate, presetFileController.getPresetFileStats);

// 上传预设文件
router.post(
  '/',
  [
    authenticate,
    upload.single('file'),
    body('name').notEmpty().withMessage('文件名称是必须的'),
    body('description').optional(),
    validate
  ],
  presetFileController.uploadPresetFile
);

// 获取单个预设文件
router.get('/:id', authenticate, presetFileController.getPresetFile);

// 下载预设文件
router.get('/:id/download', authenticate, presetFileController.downloadPresetFile);

// 更新预设文件信息
router.patch(
  '/:id',
  [
    authenticate,
    body('name').optional(),
    body('description').optional(),
    body('isActive').optional().isBoolean().withMessage('isActive必须是布尔值'),
    validate
  ],
  presetFileController.updatePresetFile
);

// 删除预设文件 (仅管理员)
router.delete('/:id', authenticate, isAdmin, presetFileController.deletePresetFile);

module.exports = router; 